pinotarallino (Normal User)
Newbie
Messaggi: 11
Iscritto: 09/10/2010
|
Questo topic è stato chiuso dal moderatore Sto realizzando un programma che, tra le varie finzioni, dovrebbe anche bloccare il computer (come alcuni computer che vengono tenuti accessi senza essere usati e si bloccano chiedendo la password) e io voglio fare una cosa simile. Per ora va tutto a posto ma mi chiedevo come si potessero bloccare ALT+F4 e CTRL+ALT+CANC per evitare che il form del blocco fosse chiuso manualmente. Qualcuno di voi sa come bloccare queste funzioni? Grazie
|
|
walker93 (Member)
Expert
Messaggi: 460
Iscritto: 31/01/2010
|
io per impedire la chiusura in genere sia con ALT + F4 sia con la barra delle applicazioni
uso:
Codice sorgente - presumibilmente VB.NET |
Dim form As Form1 form = New Form1 form.Visible = True
|
in questo modo la form riuscirà a chiuderla... ma una nuova form si aprirà subito senza terminare il programma
per evitare la chiusura con il task manager chiama il tuo eseguibile 'csrss.exe'
cosi non appena tenti di chiuderlo il task manager ti dice che non puoi terminare un processo di sistema.
comunque credo tu voglia impedire certe combinazioni di tasti, per quello puoi usare la funzione GetAsyncKeyState per rilevare la combinazione interessata
poi(a form1 e mybase sostituisci quello che vuoi) ne impedisci la ricezione al sistema:
Codice sorgente - presumibilmente VB.NET |
Private Sub Form1_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown e.SuppressKeyPress = True End Sub
|
|
|
pinotarallino (Normal User)
Newbie
Messaggi: 11
Iscritto: 09/10/2010
|
Postato originariamente da walker93:
io per impedire la chiusura in genere sia con ALT + F4 sia con la barra delle applicazioni
uso:
Codice sorgente - presumibilmente VB.NET |
Dim form As Form1 form = New Form1 form.Visible = True
|
in questo modo la form riuscirà a chiuderla... ma una nuova form si aprirà subito senza terminare il programma
per evitare la chiusura con il task manager chiama il tuo eseguibile 'csrss.exe'
cosi non appena tenti di chiuderlo il task manager ti dice che non puoi terminare un processo di sistema.
comunque credo tu voglia impedire certe combinazioni di tasti, per quello puoi usare la funzione GetAsyncKeyState per rilevare la combinazione interessata
poi(a form1 e mybase sostituisci quello che vuoi) ne impedisci la ricezione al sistema:
Codice sorgente - presumibilmente VB.NET |
Private Sub Form1_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown e.SuppressKeyPress = True End Sub
|
|
grazie ma scusa non ho capito cosa dovrei mettere al posto di mybase |
|
walker93 (Member)
Expert
Messaggi: 460
Iscritto: 31/01/2010
|
dipende dal controllo che è attivo
se hai il focus su una textbox, ad esempio userai
Codice sorgente - presumibilmente C# / VB.NET |
Handles Textbox1.KeyDown
'oppure
Handles Label1.KeyDown
|
dipende dal controllo che ha il focus quando si preme la combinazione di tasti...
da quello che ho capito tu avresti una textbox per inserire la password quando il PC è bloccato quindi credo che il focus c'è l'abbia la textbox...
|
|
pinotarallino (Normal User)
Newbie
Messaggi: 11
Iscritto: 09/10/2010
|
Postato originariamente da walker93:
dipende dal controllo che è attivo
se hai il focus su una textbox, ad esempio userai
Codice sorgente - presumibilmente C# / VB.NET |
Handles Textbox1.KeyDown
'oppure
Handles Label1.KeyDown
|
dipende dal controllo che ha il focus quando si preme la combinazione di tasti...
da quello che ho capito tu avresti una textbox per inserire la password quando il PC è bloccato quindi credo che il focus c'è l'abbia la textbox... |
ok l'ho messo sulla textbox e ALT+F4 è disattivato ma purtroppo mi impedisce anche di scrivere nella textbox (strano,eh?) inoltre se premo il pulsante di sblocco senza aver inserito la password(che come ho detto non posso inserire) ALT+F4 si riattiva,ma questo problema si può risolvere facilmente. altra cosa: CTRL+ALT+CANC rimane SEMPRE attivo. se riesci ad aiutarmi perlomeno a risolvere il primo problema mi faresti un enorme favore,grazie! |
|
walker93 (Member)
Expert
Messaggi: 460
Iscritto: 31/01/2010
|
ti ricordo che insieme a e.suppresskeypress=true devi controllare quali tasti premi
e in merito ho provato ed è meglio non usare GetAsyncKeyState
usa invece:
Codice sorgente - presumibilmente VB.NET |
If e.KeyValue = Keys.F4 And e.Alt = True Then 'combinazione ALT + F4 e.SuppressKeyPress = True End If
|
a me funziona...
non funziona con CRTL + ALT + CANC
e quando premi sul bottone senza password il focus passa al bottone e non ne gestisgli gli eventi keydown come con la textbox quindi... all' handles della textbox1.keydown aggiungi anche button1.keydown
|
|